#include <mqueue.h>
#include <stdio.h>
#include <string.h>

int main (int argc, char *argv[])
{
    // 1 设定队列的参数 ： 队列长度 消息最大大小
    struct mq_attr attr;
    attr.mq_maxmsg = 10;
    attr.mq_msgsize = 256;

    // 2.创建队列 mq_open
    mqd_t mqd = mq_open("/test_queue", O_RDWR | O_CREAT, 0666, &attr);
    if (mqd == -1)
    {
        // perror 会补上失败的原因
        perror("创建队列失败");
        return -1;
    }
    // 3. 向队列发送数据
    char data[12] = "hello world";
    mq_send(mqd, data, sizeof(data), 0);
    // 4.从队列中主动接受 数据
    char buf[256];
    mq_receive(mqd, buf, 256, 0);
    printf("接收到数据：%s", buf);
    // 5. 关闭队列 删除队列
    mq_close(mqd);
    mq_unlink("/test_queue");
}